package siga;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;

/**
 *
 * @author Christiano
 */
public class JanelaPrincipal extends JFrame implements ActionListener
{
    private JDesktopPane areaDeTrabalho;
    private JMenuBar barraDeMenu;
    private JMenu menuArquivo;
    private JMenuItem menuItemSair;
    private JMenuItem menuItemAbrir;

    private ManterAluno manterAluno;

    public JanelaPrincipal()
    {
        super("SIGA");

        if(Login()==1)
        {
        //Inicialização dos componentes

        areaDeTrabalho = new JDesktopPane();
        barraDeMenu = new JMenuBar();
        menuArquivo = new JMenu("Menu");
        menuItemSair = new JMenuItem("Sair");
        menuItemAbrir = new JMenuItem("Manter Aluno");

        //Montagem da barra de Menu        
        
        barraDeMenu.add(menuArquivo);
        menuArquivo.add(menuItemAbrir);
        menuArquivo.add(menuItemSair);

        //Associa o AcitonListener aos itens de Menu
        menuItemAbrir.addActionListener(this);
        menuItemSair.addActionListener(this);

        //configuração da Janela Principal
        setJMenuBar(barraDeMenu);
        getContentPane().add(areaDeTrabalho);
        setBounds(10,10,520,600);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        }else
         {
            System.exit(0);
         }
    }

    private Integer Login()
    {
        
        String login=JOptionPane.showInputDialog("Login");
        JLabel label = new JLabel("Senha:");
        JPasswordField pass = new JPasswordField();
        JOptionPane.showConfirmDialog(null,
        new Object[]{label, pass}, "Password:",
        JOptionPane.OK_CANCEL_OPTION);
        String senha=""+new String(pass.getPassword());

        
        if((login.equals("admin"))&&(senha.equals("admin")))
        {
            return 1;
        }else
        {
           JFrame frame = new JFrame();
           Object[] options = {"Continuar","Sair"};
           Integer n = JOptionPane.showOptionDialog(frame,"Login ou senha incorretos. Tente Novamente","Erro",
                                        JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,
                                        null,
                                        options,
                                        options[1]);
           if(n==0)
           {
               Login();
           }else
            {
               if(n==1)
               System.exit(0);
            }
           System.exit(0);
           return 0;
        }         
    }
    

    public void actionPerformed(ActionEvent e)
    {
        //trata o evento do menuItemAbrir        

            if(e.getSource()==menuItemAbrir)
            {
                try
                {
                    if(manterAluno == null)
                    {
                        try
                        {
                            //Caso a janela de manterAluno ainda não tenha sido instanceada
                            // Cria uma nova janela
                            manterAluno = new ManterAluno();
                        } catch (ParseException ex)
                        {
                            Logger.getLogger(JanelaPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                     //Verifica se a janela já está na área de trabalaho
                     //O método getComponentZorder retorna a posiçao em que
                     //o componente se encontra na tela. Caso o componente não
                     //esteja na tela, o método retorna -1

                    if(areaDeTrabalho.getComponentZOrder(manterAluno) == -1)
                    {
                        //adiciona a janela interna à areadDeTrabalho
                        areaDeTrabalho.add(manterAluno);
                    }
                    //torna a janela Visível
                    manterAluno.setVisible(true);
                    //Seleciona a janelaInterna que acaba de ser aberta
                    manterAluno.setSelected(true);
                }catch (PropertyVetoException i)
                 {
                    //Exceção caso não seja possível selecionar a janela
                    i.printStackTrace();
                 }
            }

               if(e.getSource()==menuItemSair)
               {
                   System.exit(0);
               }      
    }//Fim do método actionPerformed

}//Fim da declaração da classe JanelaPrincipal
